package game.model.vo;

import com.google.common.collect.Lists;
import common.model.dto.Fraction;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author 米泽鹏
 * @since 2022-2-28 下午 10:52
 */
@Data
public class LoadOneStepVo {

	/**
	 * 配方id
	 */
	private Long recipeId;

	/**
	 * 配方名称
	 */
	private String recipeName;

	/**
	 * 显示的配方名称
	 */
	private String recipeNameDisplayed;

	/**
	 * 原料
	 */
	private List<MaterialVo> materialList = Lists.newArrayList();

	/**
	 * 全部产物
	 */
	private List<ProductVo> productList = Lists.newArrayList();

	/**
	 * 主要产物
	 */
	private ProductVo mainProduct = new ProductVo();

	/**
	 * 副产物
	 */
	private List<ProductVo> byProductList = Lists.newArrayList();

	/**
	 * 自动化产线建筑
	 */
	private LoadOneStepBuildingVo buildingVo;

	/**
	 * 手搓建筑
	 */
	private List<LoadOneStepBuildingVo> handmadeBuildingVoList = Lists.newArrayList();

	@Data
	public static class LoadOneStepBuildingVo {

		/**
		 * 建筑主键
		 */
		private Long buildingId;

		/**
		 * 建筑名称
		 */
		private String buildingName;

		/**
		 * 是否需要供电
		 */
		private Integer needPower;

		/**
		 * 功率（MW）
		 */
		private BigDecimal power;

		/**
		 * 超频
		 */
		private Integer overclockable;

		/**
		 * 图片地址
		 */
		private String image;

		/**
		 * 数量
		 */
		private Integer count;

		/**
		 * 不精确数量（小数形式，保留两位小数）
		 */
		private BigDecimal countExact;

		/**
		 * 精确数量（分数形式）
		 */
		private Fraction countExactFraction;

	}

}
